/* -*- C -*- */
/*
  df(x)
  ----   = f(x) [1/x + 1/(x-1) + 1/(x-2) +...+ 1]
  dx
*/
f(x)
{
  if (x==1) {return x;} else {return x*f(--x);}
}

df(x)
{
  if (x==1) {return x;} else {return 1/x+df(--x);};
}

test()
{
  auto x,i;
  for(i=1;i<20;i++) {x=i+1pm1;print x," ",f(x),"\n";};
}

test();
